Introduction

This document contains maps and tables pertaining to the (cleaned) Mopeia trial data. Its purpose is to explain the methods used for buffering, as well as provide visualizations and tables useful for the designation of spray / no-spray zones and study participant selection.

It was produced late afternoon (GMT +2) on Friday, October 28th, 2016. It uses data sent from Charfudin Sacoor to Joe Brew on the morning of Monday, October 24th, 2016 (Limpesa_Final__241016_For maps.xlsx).

Methods

Algorithmic removals

In addition to the manual cleaning carried out by the demography team, 2835 houses were flagged and removed in algorithmic cleaning. Houses were removed when suspected of being misclassified into the wrong village. The criteria for being of “suspicion” is somewhat complicated, but can be visualized in full here: https://github.com/joebrew/zambezia/blob/master/lib/helpers.R

Buffering

The purpose of buffering is to flag areas which are too close to other villages to be suitable (due to the possibility of contamination). Per the protocol, there should be a 2 kilometer buffer between villages. In other words, any villager living within 1 kilometer of the edge of his or her village is part of the buffer zone.

However, taking the above approach is too restrictive and it results in too great of data loss. There are many cases in which a villager may live within 1 kilometer of his or her village’s edge (ie, in the “buffer”), but is still many kilometers from any other villager from another village. In these cases, there is no possibility of “contamination”, so flagging that villager as in the “buffer” doesn’t make sense.

In order to account for this issue, we construct delaunay triangles and subsequently create voronoi polygons from all villagers location. In short, this has the effect of “expanding” each village’s boundary so that it encompasses not only those points in which the villagers live, but also any point which is closer to that village than any other.

An example

Take village 7169, for example (‘Mugurrumba’). In the below map, red points are villagers from Mugurrumba, whereas black points are residents of other villages.

If we draw a “precise” literal border around Mugurrumba, it looks like this:

Note how almost all of the residents of Mugurrumba live very close (or directly on) the border

Mugurrumba is so small that it is impossible to create an interior 1 kilometer buffer. In other words, ALL Mugurrumba residents would be considered part of the buffer.

So, what we can do is expand Mugurrumba’s “border” further out so that it includes any geospatial point which is closer to Mugurrumba than any other village. This is called “voronoi tesselation”, and is commonly used in geospatial applications.

Now, with our “expanded” (voronoi tesselation tile) border, we can then re-draw our 1 kilometer interior border:

As can be seen in the above map, some villagers (red points outside of the red zone) are in the buffer, but many villagers (those that are not near to other villages) are not.

When we apply voronoi tesselation to the entire province of Mopeia, we de facto classify every inch of territory as part of a village, even if nobody lives there. In other words, any part of Mopeia is considered part of the village which is nearest. The below map shows the entirety of the voronoi surface:

We can apply our veronoi internal buffers and we get the following:

And finally, we can add the location of each household to see which households fall into buffer zones and which don’t.

Using this method, approximately half of our households are not within buffer zones.

Issues with the voronoi approach

The voronoi approach is the best of all options. It captures as many households as possible, while eliminating those that are too close to other villages to be useful.

For example, for the 173 residents of the village of Ntada, they are all within the core area.

For the 166 villagers of Bone, 152 are in the core (and 14 are in the buffer).

However, for some villages (like Eduardo Mondlane), the households are so close to other villages that none of the households are considered “core”.

Potential remediations

One potential work-around is to do all boundary-creation (delaunay triangulation and voronoi tesselation) at the level of the “cluster” rather than the “village” (bairro). This way, there would be fewer buffers, and there would be no buffers between villages of identical spray status.

Another alternative would be to essentially designate only two clusters: spray and no-spray. The only buffers created, in this strategy, would be between spray and no-spray zones. Between clusters and villages of identical spray status, no buffer zones would be created.

Code

Full code for the generation of delaunay triangles and voronoi tesselation is available at https://github.com/joebrew/zambezia.

Master map

The below map shows all households, except for the 2835 households algorithmically removed due to suspicion of error. Each village’s core area is denoted by the solid line of the color of that village’s points. Each village’s “strict” border is denoted by a grey polygon. Each point (household) is clickable; upon click, the household number, village number, core/buffer status and spray status are shown.

Master table

The below table contains all households, along with the relevant information pertaining to spray status, buffer/core status, etc.